﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DTO;
using System.Data.SqlClient;
namespace DAO
{
    public class TamTinhDAO
    {
        // Lấy Danh Sách Món ĂN Tạm Tính Theo Bàn
        public void XoaTamTinh(int Id_Ban_An)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "DELETE FROM TAMTINH WHERE Ban_An = @Id_Ban_An";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para = cmd.Parameters.Add("@Id_Ban_An", System.Data.SqlDbType.Int, -1);
            para.Value = Id_Ban_An;
            cmd.ExecuteNonQuery();
            myCONN.Close();
        }
        // Lấy Danh Sách Món Ăn
        public List<MonAnDTO> DanhSachMonAnTamTinhTheoBanAn(int ID_BAN_AN)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "SELECT ID_Mon_An,Ten_Mon,So_Luong,Don_gia FROM TAMTINH WHERE BAN_AN = @ID_BAN_AN  ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para = cmd.Parameters.Add("@ID_BAN_AN", System.Data.SqlDbType.Int, -1);
            para.Value = ID_BAN_AN;
            // Lấy dữ liệu từ kết quả truy vấn
            SqlDataReader reader = cmd.ExecuteReader();
            
            // Đổ dữ liệu vào danh sách đối tượng Khu Vực
            List<MonAnDTO> listMADTO = new List<MonAnDTO>();
            while (reader.Read())
            {
                MonAnDTO singleRecord = new MonAnDTO();

                singleRecord.Id_Mon_An = reader.GetInt32(0);
                singleRecord.Ten_Mon_An = reader.GetString(1);
                singleRecord.So_Luong = reader.GetInt32(2);
                singleRecord.Don_Gia = reader.GetInt64(3);
                listMADTO.Add(singleRecord);
            }

            // Đóng kết nối CSDL
            myCONN.Close();

            // Trả kết quả
            return listMADTO;
        }
        // Ghi Hóa Đơn Tạm Thời
        public void GhiXuongBangTamTinh(MonAnDTO maDTO,int ID_Ban_An)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "insert into TAMTINH(Id_Mon_An,Ten_Mon,Don_Gia,So_Luong,Thanh_Tien,Ban_An) values (@Id_Mon_An,@Ten_Mon,@Don_Gia,@So_Luong,@Thanh_Tien,@Ban_An)";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para = cmd.Parameters.Add("@Id_Mon_An", System.Data.SqlDbType.Int, -1);
            para.Value = maDTO.Id_Mon_An;
            para = cmd.Parameters.Add("@Ten_Mon", System.Data.SqlDbType.NVarChar, -1);
            para.Value = maDTO.Ten_Mon_An;
            para = cmd.Parameters.Add("@Don_Gia", System.Data.SqlDbType.BigInt, -1);
            para.Value = maDTO.Don_Gia;
            para = cmd.Parameters.Add("@So_Luong", System.Data.SqlDbType.Int, -1);
            para.Value = maDTO.So_Luong;
            para = cmd.Parameters.Add("@Thanh_Tien", System.Data.SqlDbType.BigInt, -1);
            para.Value = maDTO.So_Luong * maDTO.Don_Gia;
            para = cmd.Parameters.Add("@Ban_An", System.Data.SqlDbType.Int, -1);
            para.Value = ID_Ban_An;
            // Lấy dữ liệu từ kết quả truy vấn
            cmd.ExecuteNonQuery();
            // Đóng kết nối CSDL
            myCONN.Close();

            
        }
    }
}
